﻿#define _CRT_SECURE_NO_WARNINGS


#include<iostream>
using namespace std;

//class A
//{
//protected:
//	int _a;
//};
//
//class B :public A
//{
//protected:
//	int _b;
//};
//class Person
//{
//public:
//    void Print()
//    {
//        cout << "name:" << _name << endl;
//        cout << "age:" << _age << endl;
//    }
//protected:
//    string _name = "peter"; // 姓名
//    int _age = 18; //年龄
//};
//
//class Student : public Person
//{
//protected:
//    int _stuid; // 学号
//};
//
//class Teacher : public Person
//{
//protected:
//    int _jobid; // 工号
//};
//
//
//int main()
//{
//    Student s;
//
//    Teacher th;
//
//	return 0;
//}

//
//class Person
//{
//protected :
//	string _name; 
//	string _sex;
//	int _age;
//};
//
//class Student : public Person
//{
//public:
//	int _num;
//};
//
//int main()
//{
//	Student s;
//	// 1.子类对象可以赋值给父类对象/指针/引用
//	Person pobj = s;
//	Person* pp = &s;
//
//	Person& rp = s;
//	//2.基类对象不能赋值给派生类对象
//	s = pobj;//报错
//
//	// 3.基类的指针可以通过强制类型转换赋值给派生类的指针
//	pp = &s;
//	Student * ps1 = (Student*)pp;
//	return 0;
//}

//class Person
//{
//public:
//    Person() { ++_count; }
//protected:
//    string _name; // 姓名
//public:
//    static int _count; // 统计人的个数。
//};
//int Person::_count = 0;
//class Student : public Person
//{
//protected:
//    int _stuNum; // 学号
//};
//
//int main()
//{
//    Student s1;
//    Student s2;
//    cout << Person::_count << endl;
//    return 0;
//}


class A
{
public:
	int _x;
};

class B :public A
{
public:
	int _b;
};

class C :public A
{
public:
	int _c;
//};

class D : public B, public C
{
public:
	int _d;
};

int main()
{
	D dd;
	dd._x = 0;
	return 0;
}